// 这是一个公共方法库

// 用于单元格无数据显示---
export const dataNull = (data:string | number):string | number => {
    return data !== '' && data !== null && data !== undefined ?data :'---';
};
//多个逗号隔开的id字符串，转数字型组成的数组 "1,2,3" 转化 [1,2,3]
export const idsToArr = (ids: string | Array<any>): number[] => {
    let initIds = [];
    if (ids) {
        if (typeof ids === 'string') {
            // 当ids是空字符串时，初始化为空数组，否则将字符串分割并转换为数字数组
            initIds = ids.split(',') || [];
            initIds = initIds.map(Number); // 使用Number函数来转换每个元素为数字
        } else if (Array.isArray(ids)) {
            // 当ids是数组时，直接使用slice创建一个副本（这里不需要使用const，因为initIds可能会被重新赋值）
            initIds = ids.slice(0);
        }
    }
    return initIds;
};
//多个逗号隔开的字典字符串，转字符串型组成的数组, "1,2,3" 转化 ['1','2','3']
export const dictsToArr = (ids: string | Array<any>): number[] => {
    let initIds = [];
    if (ids) {
        if (typeof ids === 'string') {
            // 当ids是空字符串时，初始化为空数组，否则将字符串分割
            initIds = ids.split(',') || [];
        } else if (Array.isArray(ids)) {
            initIds = ids.slice(0);
        }
    }
    return initIds;
};
// 导出报表
export const handleExportData = (data:any, fileName: string) => {    
    const blob = new Blob([data]);//new Blob([res])中不加data就会返回下图中[objece objece]内容（少取一层）
    const elink = document.createElement('a');
    elink.download = fileName;
    elink.style.display = 'none';
    elink.href = URL.createObjectURL(blob);
    document.body.appendChild(elink);
    elink.click();
    URL.revokeObjectURL(elink.href); // 释放URL 对象
    document.body.removeChild(elink);
    ElMessage.success(`导出成功！`);
}
